Cloud storage refers to a mode of storing on-line data on the internet, i.e., storing the on-line data in a plurality of virtual servers managed by a third party agent, but not to an exclusive server. A data center provider prepares virtualized resources to store the on-line data at the back end according to customers' demands, provides the customer with a storage pool, and then the customer can use the storage pool to store files or objects. Cloud computing is a kind of computing based on the internet. Through this method, shared software resources and messages can be supplied to the computer and other devices on demand. Cloud computing describes an increasing service based on a new information technology (IT) of the internet, usage and delivery and payment modes, involves dynamic transaction expansion functions provided through the internet, and is usually virtualized resources. A user can access service software and data, and the service provider maintains the basic infrastructure and platform to keep the service operating normally. The service or the software provided by the service provider is usually called “software-on-demand”, being charged based on usage time. The user only needs to have low complexity software and hardware equipment to use these services, so this can save costs for the enterprise. Because the application is supplied centrally, updates to the application can be deployed instantly, and the user does not need to perform update manually or install new software. Therefore, cloud computing allows the enterprise to deploy applications quickly, reduce complexity of management, and allow prompt redistribution of IT resources in response to rapid changes of the enterprise's requirements.
The benefit to the user or the enterprise regarding the concept of the cloud is that there is no need to purchase every kind of hardware equipment and software with powerful processing capability, maintenance and updates are performed by the service provider, and the user or the enterprise “virtualizes” the hardware equipment and software as much as possible. However, the user or the enterprise subscriber will get a serial number after purchasing, and the software can be used only if the serial number is verified during installation of the software or activation of the program. Generally speaking, the user waits for Email to acquire the serial number or must obtain the serial number at a physical store, spending several minutes to days. In addition, a key generator can be used to generate the serial number or crack the software. Therefore piracy issues commonly occur.
Please refer to FIG. 1, which shows a flow diagram for licensing a program in the prior art. In Step S101, the subscriber system receives an application program activation command. In Step S102, the subscriber system loads the application program into a memory, the memory can include a hard disk or a random access memory (RAM), the application program can be loaded on the hard disk of the subscriber system from the server of the service terminal through the internet, and then the application program is loaded into the RAM for execution from the hard disk. The application software can be directly loaded into the RAM of the subscriber system for execution from the enterprise's internal file server. In Step S103, the application program judges whether the application program has a license, and if the application program passes the license verification, then the flow goes to Step S104. If the application program does not pass the license verification, then the flow goes to Step S105. In Step S105, the application program requests the user to enter a verification code, the flow goes to Step S104 when the verification is successful, and the flow will go to Step S106 if the verification fails.
In the steps of licensing the program in the prior art, all of the application program content is loaded into the memory to perform the license verification, so the application program can be easily copied or altered, which can avoid the process of licensing verification, therefore leading to piracy of the software. Another scheme in the prior art performs the license verification by using a specific program for the license verification, but it does not cause the operating system to do the license verification under the control of a device driver in the operating system at the user terminal, so the completion and the security of the license verification decrease, leading to rampant piracy of the software. In addition, this kind of program must be written according to each specific application for the license verification. If the file of the application program can be accessed through a definite flow process, then there is no need to write a specific program for the license verification according to each different application program. Therefore, it is expected that a method wherein the device driver of the subscriber system can inform the OS to perform the license verification before the software is loaded into the hard disk or RAM, and wherein the device driver allows the software to be loaded into the RAM after the license verification passes, can prevent piracy issues.
Regarding the number of software licenses in each enterprise, it is common that an enterprise will buy several licenses according to how many computers the enterprise has, and only computers with the license installed can be used after the software installation. Because the same serial number can be installed on two different computers or devices, which does not comply with the stipulations of the software license, if another computer without the installation needs to be used, the software license needs to be uninstalled from the original computer before the software can be installed on another computer, i.e., the software usage right depends on different hardware devices. The drawback of this license method, in addition to the inconvenient step of uninstallation, is that the enterprise still needs to buy a number of computer licenses when the number of licenses is smaller than the number of computers in the enterprise, so the method of licensing the software is not flexible. Therefore, it is expected that a method of licensing the software that is not associated with the computer or the device number, will enable the enterprise to more successfully manage the number of the software licenses.